<?php



class Student extends CI_Controller {



// 默认方法

    public function index($value = '') {

        // p('这是我的默认控制器');

        //加载默认视图

        $this->load->view('reg.php');

    }



// 显示所有作业信息



    public function viewAll() {

        $this->load->model('repo_model', 'repo');

        // 先通过模型获得所有作业的数据

        $data['info'] = $this->repo->getAll();



        // 把数据传递到视图进行显示

        $this->load->view('display.php', $data);

    }



    // 表单验证

    public function process() {

        // 加载表单验证辅助函数

        $this->load->helper(array('form'));

        // 加载表单验证类

        $this->load->library('form_validation');



        // 设置验证规则

        $this->form_validation->set_rules('username', '学生姓名', 'callback_username_check');

        $this->form_validation->set_rules('usernumber', '学号', 'callback_usernumber_check');

        $this->form_validation->set_rules('userurl', '仓库地址', 'callback_userurl_check');



        if ($this->form_validation->run() == FALSE) {

            p($this->form_validation->run());

            $this->load->view('reg.php');

        } else {

            $this->viewAll();

        }

    }



// 用户信息验证回调函数

    public function username_check($str) {



        $pattern = '/^[\x80-\xff]{6,}$/';



        if (!preg_match($pattern, $str)) {

            $this->form_validation->set_message('username_check', '用户名称必须是两个汉字以上');

            return FALSE;

        } else {

            return TRUE;

        }

    }



    // 学号信息验证回调函数

    public function usernumber_check($str) {



        $pattern = '/^[pP]1[56]\d{7}/';



        if (!preg_match($pattern, $str)) {

            $this->form_validation->set_message('usernumber_check', '学号以p开头，后接数字，共10位');

            return FALSE;

        } else {

            return TRUE;

        }

    }



    // 仓库地址信息验证回调函数

    public function userurl_check($str) {



        $pattern = '/^https:\/\/((gitee.com)|(coding.net)|(github.com))\/(.*?)\/(.*?)/';



        if (!preg_match($pattern, $str)) {

            $this->form_validation->set_message('userurl_check', '仓库地址必须是https开头的有效地址');

            return FALSE;

        } else {

            return TRUE;

        }

    }

}

